package com.googlecode.kipler.container.dl;

import java.util.HashSet;
import java.util.Set;

import com.googlecode.kipler.satisfiability.completion.rule.RuleLogger;
import com.googlecode.kipler.syntax.formula.Formula;


public class LTLALCWcsData implements WcsData, MarkedFormulaContainer {
	private DependencyManager dependencyManager = new DependencyManager();

	private RuleLogger logger = new RuleLogger();

	private ModifiedIndividualCollection modifiedIndividuals = new FakeModifiedIndividualCollection();

	private Set<Formula> markedFormulas = new HashSet<Formula>();

	/**
	 * @param logger
	 *            the logger to set
	 */
	public void setLogger(RuleLogger logger) {
		this.logger = logger;
	}

	public RuleLogger getLogger() {
		return logger;
	}

	/**
	 * @return the dependencyManager
	 */
	public DependencyManager getDependencyManager() {
		return dependencyManager;
	}

	/**
	 * @return the modifiedIndividuals
	 */
	public ModifiedIndividualCollection getModifiedIndividuals() {
		return modifiedIndividuals;
	}

	public Set<Formula> getMarkedFormulas() {
		return markedFormulas;
	}

	public WcsData copy() {
		LTLALCWcsData result = new LTLALCWcsData();
		result.setLogger(getLogger());
		result.dependencyManager = dependencyManager.copy();
		result.modifiedIndividuals = modifiedIndividuals.copy();
		result.markedFormulas = new HashSet<Formula>(markedFormulas); 
		return result;
	}
}
